A relational database is a collection of logically related data arranged as rows and columns in one or more tables (or relations). A conventional relational database management system (RDBMS) typically provides predefined simple data types, such as integers, real numbers, character strings, and so forth, for storing different types of data. To enhance flexibility in storing different types of data, user-defined data types (UDTs) have been introduced.
A UDT is associated with various user-defined methods, which are software routines or modules that can be created by database users or applications for performing various tasks with respect to data stored in tables. While user-defined methods are associated with UDTs, a user or application can also create a user-defined function (UDF) or a stored procedure that does not necessarily have to be associated with a UDT.
For improved performance and efficient administration, methods, functions, and other routines can be grouped in a shared library that is accessible by software applications in the database system. Examples of shared libraries include dynamic link libraries (DLLs) associated with Microsoft WINDOWS® operating systems, or shared objects associated with UNIX operating systems. Methods and/or functions associated with a given database can be grouped into one shared library.
Security concerns are raised as a result of grouping methods and/or functions into a shared library. Any given method or function in the shared library can call another method or function in the same shared library. An unauthorized user who is knowledgeable about the shared library structure of a database system may be able to gain access to a method or function that the user is not authorized to access by embedding a call to the method or function within another method or function that is part of the same shared library. This is particularly a concern where the unauthorized access of methods or functions enables access of sensitive information stored in tables, such as social security numbers, salaries, and so forth.